package cpsobras.movimento_item;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import cpsobras.material.Material;
import cpsobras.movimento.Movimento;
import cpsobras.servico.Servico;

@Entity
@Table(name="tab_movimento_item")
public class Movimento_Item implements Serializable{

	private static final long serialVersionUID = 1L;
		
	@Id
	@GeneratedValue
	private Integer seq_item;
	private Integer cod_movime;
	@Column(name="cod_materi")
	private Integer cod_item;
	private Integer cod_servic;
	private Integer val_quanti_item;
	private Double val_preco_unitar;
	private String cod_unidad;
	
	@ManyToOne
	@JoinColumn(name="cod_movime", insertable=false, updatable=false)
	private Movimento movimento;
	
	@ManyToOne
	@JoinColumn(name="cod_materi", insertable=false, updatable=false)
	private Material material;
	
	@ManyToOne
	@JoinColumn(name="cod_servic", insertable=false, updatable=false)
	private Servico servico;

	public Integer getSeq_item() {
		return seq_item;
	}

	public void setSeq_item(Integer seq_item) {
		this.seq_item = seq_item;
	}

	public Integer getCod_movime() {
		return cod_movime;
	}

	public void setCod_movime(Integer cod_movime) {
		this.cod_movime = cod_movime;
	}

	public Integer getCod_item() {
		return cod_item;
	}

	public void setCod_item(Integer cod_item) {
		this.cod_item = cod_item;
	}

	public Integer getCod_servic() {
		return cod_servic;
	}

	public void setCod_servic(Integer cod_servic) {
		this.cod_servic = cod_servic;
	}

	public Integer getVal_quanti_item() {
		return val_quanti_item;
	}

	public void setVal_quanti_item(Integer val_quanti_item) {
		this.val_quanti_item = val_quanti_item;
	}

	public Double getVal_preco_unitar() {
		return val_preco_unitar;
	}

	public void setVal_preco_unitar(Double val_preco_unitar) {
		this.val_preco_unitar = val_preco_unitar;
	}

	public String getCod_unidad() {
		return cod_unidad;
	}

	public void setCod_unidad(String cod_unidad) {
		this.cod_unidad = cod_unidad;
	}

	public Movimento getMovimento() {
		return movimento;
	}

	public void setMovimento(Movimento movimento) {
		this.movimento = movimento;
	}

	public Material getMaterial() {
		return material;
	}

	public void setMaterial(Material material) {
		this.material = material;
	}

	public Servico getServico() {
		return servico;
	}

	public void setServico(Servico servico) {
		this.servico = servico;
	}
	
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((cod_item == null) ? 0 : cod_item.hashCode());
		result = prime * result
				+ ((cod_movime == null) ? 0 : cod_movime.hashCode());
		result = prime * result
				+ ((cod_servic == null) ? 0 : cod_servic.hashCode());
		result = prime * result
				+ ((cod_unidad == null) ? 0 : cod_unidad.hashCode());
		result = prime * result
				+ ((seq_item == null) ? 0 : seq_item.hashCode());
		result = prime
				* result
				+ ((val_preco_unitar == null) ? 0 : val_preco_unitar.hashCode());
		result = prime * result
				+ ((val_quanti_item == null) ? 0 : val_quanti_item.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Movimento_Item other = (Movimento_Item) obj;
		if (cod_item == null) {
			if (other.cod_item != null)
				return false;
		} else if (!cod_item.equals(other.cod_item))
			return false;
		if (cod_movime == null) {
			if (other.cod_movime != null)
				return false;
		} else if (!cod_movime.equals(other.cod_movime))
			return false;
		if (cod_servic == null) {
			if (other.cod_servic != null)
				return false;
		} else if (!cod_servic.equals(other.cod_servic))
			return false;
		if (cod_unidad == null) {
			if (other.cod_unidad != null)
				return false;
		} else if (!cod_unidad.equals(other.cod_unidad))
			return false;
		if (seq_item == null) {
			if (other.seq_item != null)
				return false;
		} else if (!seq_item.equals(other.seq_item))
			return false;
		if (val_preco_unitar == null) {
			if (other.val_preco_unitar != null)
				return false;
		} else if (!val_preco_unitar.equals(other.val_preco_unitar))
			return false;
		if (val_quanti_item == null) {
			if (other.val_quanti_item != null)
				return false;
		} else if (!val_quanti_item.equals(other.val_quanti_item))
			return false;
		return true;
	}	
}
